const { userApi } = require('../../utils/api')

Page({
  data: {
    username: '',
    password: '',
    confirmPassword: '',
    phone: ''
  },

  // 输入框事件处理函数
  onUsernameInput(e) {
    this.setData({
      username: e.detail.value
    })
  },

  onPasswordInput(e) {
    this.setData({
      password: e.detail.value
    })
  },

  onConfirmPasswordInput(e) {
    this.setData({
      confirmPassword: e.detail.value
    })
  },

  onPhoneInput(e) {
    this.setData({
      phone: e.detail.value
    })
  },

  // 注册处理函数
  async handleRegister() {
    try {
      const { username, password, confirmPassword, phone } = this.data

      // 表单验证
      if (!username || !password || !confirmPassword || !phone) {
        wx.showToast({
          title: '请填写完整信息',
          icon: 'none'
        })
        return
      }

      // 验证用户名长度
      if (username.length < 4 || username.length > 20) {
        wx.showToast({
          title: '用户名长度必须在4-20个字符之间',
          icon: 'none'
        })
        return
      }

      // 验证密码长度
      if (password.length < 6 || password.length > 20) {
        wx.showToast({
          title: '密码长度必须在6-20个字符之间',
          icon: 'none'
        })
        return
      }

      if (password !== confirmPassword) {
        wx.showToast({
          title: '两次密码不一致',
          icon: 'none'
        })
        return
      }

      // 手机号格式验证
      const phoneRegex = /^1[3-9]\d{9}$/
      if (!phoneRegex.test(phone)) {
        wx.showToast({
          title: '手机号格式不正确',
          icon: 'none'
        })
        return
      }

      wx.showLoading({
        title: '注册中...',
        mask: true
      })

      const res = await userApi.register({
        username,
        password,
        phone
      })

      if (res.success) {
        wx.showToast({
          title: '注册成功',
          icon: 'success'
        })

        // 保存token和用户信息
        wx.setStorageSync('token', res.data.token)
        wx.setStorageSync('userInfo', res.data)

        // 延迟执行返回操作
        setTimeout(() => {
          const pages = getCurrentPages()
          if (pages.length > 1) {
            // 如果有上一页，返回上一页
            wx.navigateBack()
          } else {
            // 如果没有上一页，返回首页
            wx.switchTab({
              url: '/pages/index/index'
            })
          }
        }, 1500)
      } else {
        wx.showToast({
          title: res.message || '注册失败',
          icon: 'none'
        })
      }
    } catch (error) {
      console.error('注册失败:', error)
      wx.showToast({
        title: error.message || '注册失败，请重试',
        icon: 'none'
      })
    } finally {
      wx.hideLoading()
    }
  },

  // 返回登录页
  handleBack() {
    wx.navigateBack()
  }
}) 